<?php
    class SelecaoCandidato extends BaseModel
    {
        protected $selecaocandidatoid;
        protected $selecaoid;
        protected $candidatoid;
        protected $ativo;
        protected $selecionado;
        
        const tablename = "selecoescandidatos";
        const tablekey = "selecaocandidatoid";
        const tablesequence = "selecoescandidatos_selecaocandidatoid_seq";

        public function getCandidato(){
            return new Candidato( $this->candidatoid );
        }
        
        public function getHistorico()
        {
            if ( $this->selecaocandidatoid == NULL ){
                return array();
            }
            
            $selecaoCandidatoHistorico = new SelecaoCandidatoHistorico();
            
            $sql = 'SELECT 
            			sch.statusid,
            			sch.dataregistro, 
            			sch.operadorid, 
            			sch.observacao,
            			s.descricao as status, 
            			o.usuario as operador  
            		FROM 
            			' . SelecaoCandidatoHistorico::tablename . ' as sch, 
            			' . Status::tablename . ' as s,
            			' . Operador::tablename . ' as o 
            		WHERE
            			selecaocandidatoid = ' . $this->selecaocandidatoid . ' AND 
            			sch.statusid = s.statusid AND 
            			sch.operadorid = o.operadorid 
            		ORDER BY dataregistro DESC';
            
            $result = TSqlSelect::customSelect( $sql );
            
            if ( pg_num_rows( $result ) > 0 ){
                return pg_fetch_all( $result );
            }
            return array();
        }
        
        public function getHistoricoMaisRecente()
        {
            $selecaoCandidatoHistorico = new SelecaoCandidatoHistorico();
            
            $criterio = array();
            $criterio['campo'] = 'selecaocandidatoid';
            $criterio['operador'] = '=';
            $criterio['valor'] = $this->selecaocandidatoid;
            $criterio['orderBy'] = 'dataregistro';
            $criterio['order'] = 'DESC';
            $criterio['limit'] = 1;
            
            $result = $selecaoCandidatoHistorico->listar( $criterio );
            
            if ( pg_num_rows( $result ) > 0 ){
                $result = pg_fetch_object( $result );
                return new SelecaoCandidatoHistorico( $result->selecaocandidatohistoricoid );
            }
            return $selecaoCandidatoHistorico;
        }
        
        public function inserirHistorico( $statusid, $observacao = NULL, $intervaloSegundos = 0 )
        {
            global $usuario;
            
            date_default_timezone_set('America/Sao_Paulo');
		
            //alterando a data de hoje para adicionar segundos, garatindo a ordem do historico do candidatovaga
    		$hoje = mktime( date('H'), date('i'), date('s'), date('m'), date('d'), date('Y') ); 
    		$novaData = $hoje + $intervaloSegundos;
    		
    		$selecaoCandidatoHistorico = new SelecaoCandidatoHistorico();
    		$selecaoCandidatoHistorico->selecaocandidatoid = $this->selecaocandidatoid;
    		$selecaoCandidatoHistorico->statusid = $statusid;
    		$selecaoCandidatoHistorico->observacao = $observacao;
    		$selecaoCandidatoHistorico->operadorid = $usuario->operadorid;
    		$selecaoCandidatoHistorico->dataregistro =date('Y-m-d H:i:s',$novaData);
    		$selecaoCandidatoHistorico->salvar();
    	}
    }
?>